package com.winhxd.b2c.common.feign.customer;

import com.winhxd.b2c.common.constant.BusinessCode;
import com.winhxd.b2c.common.constant.ServiceName;
import com.winhxd.b2c.common.domain.PagedList;
import com.winhxd.b2c.common.domain.ResponseResult;
import com.winhxd.b2c.common.domain.customer.condition.*;
import com.winhxd.b2c.common.domain.customer.model.CustomerUserInfo;
import com.winhxd.b2c.common.domain.customer.vo.*;
import com.winhxd.b2c.common.domain.customer.condition.CustomerWithdrawalsCondition;
import com.winhxd.b2c.common.domain.customer.vo.CustomerWithdrawalsVO;
import feign.hystrix.FallbackFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author chengyy
 * @Description: 用户服务接口
 * @date 2018/8/4 16:56
 */
@FeignClient(value = ServiceName.CUSTOMER_SERVICE, fallbackFactory = CustomerServiceClientFallBack.class)
public interface CustomerServiceClient {

    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 后台新增一级分销商
     */
    @RequestMapping(value = "/customer/2001/v1/saveFirstDistributer", method = RequestMethod.POST)
    ResponseResult<Boolean> saveFirstDistributer(@RequestBody CustomerDistributorCondition condition);

    /**
     * @return 数据
     * @author lishaoping
     * @date 2019年1月7日13:55:02
     * @Description 运营首页展示
     */
    @RequestMapping(value = "/customer/2002/v1/findOperationHomePage", method = RequestMethod.POST)
    ResponseResult<CustomerOperationHomePageVO> findOperationHomePage();

    /**
     * @author zhaoyanbiao
     * @date 2019/1/7
     * @Description 用户查询分销商渠道类型列表信息
     */
    @RequestMapping(value = "/customer/2003/v1/findCustomerDistribtorChannelTypeList", method = RequestMethod.POST)
    ResponseResult<PagedList<CustomerDistributorChannelTypeVO>> findCustomerDistribtorChannelTypeList(@RequestBody DistributorChannelTypeCondition customerDistributorCondition);

    /**
     * @author zhaoyanbiao
     * @date 2019/1/7
     * @Description 用户更新分销商渠道类型状态
     */
    @RequestMapping(value = "/customer/2004/v1/modifyDistriButorType", method = RequestMethod.POST)
    ResponseResult<Boolean> modifyDistriButorType(@RequestBody DistributorChannelTypeCondition condition);


    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 分销商列表(包含模糊查询)
     */
    @RequestMapping(value = "/customer/2005/v1/findDistributerListByCondition", method = RequestMethod.POST)
    ResponseResult<PagedList<CustomerDistributorVO>> findDistributerListByCondition(@RequestBody CustomerDistributorCondition condition);

    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/21
     * @Description
     */
    @RequestMapping(value = "/customer/2006/v1/modifyFirstDistributorBind", method = RequestMethod.POST)
    ResponseResult<Boolean> modifyFirstDistributorBind(@RequestBody CustomerDistributorCondition condition);


    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 分销商列表(包含模糊查询)
     */
    @RequestMapping(value = "/customer/2007/v1/modifySecondDistributorBind", method = RequestMethod.POST)
    ResponseResult<Boolean> modifySecondDistributorBind(@RequestBody CustomerDistributorCondition condition);



    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 修改分销商状态
     */
    @RequestMapping(value = "/customer/2009/v1/modifyDistributorStatus", method = RequestMethod.POST)
    ResponseResult<Boolean> modifyDistributorStatus(@RequestBody CustomerDistributorCondition condition);

    /**
     * @param
     * @return
     * @author zhaoyanbiao
     * @date 2019/1/7
     * @Description 新增分销商渠道
     */
    @RequestMapping(value = "/customer/2010/v1/saveDistriButorChannel", method = RequestMethod.POST)
    ResponseResult<Boolean> saveDistriButorChannel(@RequestBody DistributorChannelCondition channelCondition);

    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/8
     * @Description 根据主键查询分销商换绑所需要的简单信息
     */
    @RequestMapping(value = "/customer/2011/v1/findDistributerSimpleById/{id}", method = RequestMethod.GET)
    ResponseResult<CustomerDistributorSimpleVO> findDistributerSimpleById(@RequestParam(value = "id") Long id);


    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/8
     * @Description 根据主键查询分销商详细信息
     */
    @RequestMapping(value = "/customer/2012/v1/findDistributerDeatilById/{id}", method = RequestMethod.POST)
    ResponseResult<CustomerDetailVO> findDistributerDeatilById(@PathVariable(value = "id") Long id);

    /**
     * @param
     * @return
     * @author zhaoyanbiao
     * @date 2019/1/9
     * @Description 根据主键查询分销渠道详细信息
     */
    @RequestMapping(value = "/customer/2013/v1/getDistributerChannelLevelById/{id}", method = RequestMethod.POST)
    ResponseResult<CustomerDistributorTypeAndChannelVO> getDistributerChannelLevelById(@PathVariable(value = "id") Long id);

    /**
     * @param
     * @return
     * @author lishaoping
     * @date 2019年1月9日11:43:07
     * @Description 查询用户收货地址ById
     */
    @RequestMapping(value = "/address/2014/v1/selectCustomerAddressById", method = RequestMethod.POST)
    ResponseResult<CustomerAddressVO> selectCustomerAddressById(@RequestParam(value = "id") Long id);

    /**
     * @param
     * @return
     * @author baishenghu
     * @date 2019年1月9日11:43:07
     * @Description 查询会员基本信息ById
     */
    @RequestMapping(value = "/customer/2015/v1/findCustomerUserInfoById", method = RequestMethod.POST)
    ResponseResult<CustomerUserInfoVO> getCustomerUserInfoById(@RequestParam(value = "customerId") Long customerId);

    /**
     * @param
     * @return
     * @author baishenghu
     * @date 2019年1月9日11:43:07
     * @Description 查询会员的渠道信息ById
     */
    @RequestMapping(value = "/customer/2016/v1/getCustomerChannelById", method = RequestMethod.POST)
    ResponseResult<CustomerDistributorTypeAndChannelVO> getCustomerChannelById(@RequestParam(value = "customerId") Long customerId);


    /**
     * @param
     * @return
     * @author zhaoyanbiao
     * @date 2019年1月9日11:43:07
     * @Description 查询所有的分销商渠道类型列表
     */
    @RequestMapping(value = "/customer/2017/v1/findDistributerChannelTypeList", method = RequestMethod.POST)
    ResponseResult<List<CustomerDistributorChannelTypeVO>> findDistributerChannelTypeList(@RequestBody DistributorChannelTypeCondition condition);

    /**
     * @param
     * @return
     * @author baishenghu
     * @date 2019年1月9日11:43:07
     * @Description 批量查询会员信息
     */
    @RequestMapping(value = "/customer/2018/v1/getCustomerUserInfoByIds", method = RequestMethod.POST)
    ResponseResult<List<CustomerUserInfoVO>> getCustomerUserInfoByIds(@RequestBody CustomerInfoCondition condition);

    /**
     * @param
     * @return
     * @author baishenghu
     * @date 2019年1月9日11:43:07
     * @Description 根据会员ID查询统计下面的会员数量
     */
    @RequestMapping(value = "/customer/2019/v1/getCustomerTotalById", method = RequestMethod.POST)
    ResponseResult<CustomerTotalVO> getCustomerTotalById(@RequestBody CustomerTotalCondition condition);

    /**
     * 分销商/会员基本信息 统计
     * @author: wangbaokuo
     * @date: 2019/1/11 10:49
     * @param: [id]
     * @return: com.winhxd.b2c.common.domain.ResponseResult<com.winhxd.b2c.common.domain.customer.vo.CustomerBaseCollectVO>
     */
    @PostMapping(value = "/customer/2020/v1/findCustomerWallet")
    ResponseResult<List<CustomerBaseCollectVO>> findCustomerWallet(@RequestBody CustomerWalletCondition condition);

    /**
     * 分销商/会员详情-收益日志
     * @author: wangbaokuo
     * @date: 2019/1/11 13:27
     * @param: [id]
     * @return: com.winhxd.b2c.common.domain.ResponseResult<com.winhxd.b2c.common.domain.customer.vo.CustomerRevenueDetailVO>
     */
    @PostMapping(value = "/customer/2021/v1/findUserRevenueDetail")
    ResponseResult<PagedList<CustomerRevenueDetailVO>> findUserRevenueDetail(@RequestBody CustomerRevenueDetailCondition condition);

    /**
     * 分销商/会员详情-积分日志
     * @author: wangbaokuo
     * @date: 2019/1/11 13:27
     * @param: [id]
     * @return: com.winhxd.b2c.common.domain.ResponseResult<com.winhxd.b2c.common.domain.customer.vo.CustomerIntegralDetailVO>
     */
    @PostMapping(value = "/customer/2022/v1/findUserIntegralDetail")
    ResponseResult<PagedList<CustomerIntegralDetailVO>> findUserIntegralDetail(@RequestBody CustomerIntegralDetailCondition condition);

    /**
     * 查询后台首页未审核的提现申请数
     *
     * @return 提现申请数
     * @author lt
     * @date 2019-1-11 16:19:30
     */
    @GetMapping(value = "/customer/2023/v1/getWithdrawDepositNum")
    ResponseResult<Integer> getWithdrawDepositNum();

    /**
     * @param
     * @return
     * @author 王泽坤sss
     * @date 2019/1/12
     * @Description 分销商详情保存
     */
    @RequestMapping(value = "/customer/2024/v1/modifyDistributor", method = RequestMethod.POST)
    ResponseResult<Boolean> modifyDistributor(@RequestBody CustomerDistributorCondition condition);

    /**
     * 查询当前用户收益与积分
     *
     * @param condition
     * @return
     */
    @PostMapping(value = "/customer/2025/v1/getCustomerRevenue")
    ResponseResult<CustomerRevenueVO> getCustomerRevenue(@RequestBody CustomerMyRevenueCondition condition);

    /**
     * 提现审核
     * @author: wangbaokuo
     * @date: 2019/1/12 13:04
     * @param: [condition]
     * @return: com.winhxd.b2c.common.domain.ResponseResult<java.lang.Integer>
     */
    @PostMapping(value = "/customer/2026/v1/auditPayWithdrawals")
    ResponseResult<Integer> auditPayWithdrawals(@RequestBody CustomerAuditCondition condition);

    /**
     * 提现列表
     * @author: wangbaokuo
     * @date: 2019/1/11 16:16
     * @param: [condition]
     * @return: com.winhxd.b2c.common.domain.ResponseResult<com.winhxd.b2c.common.domain.PagedList<com.winhxd.b2c.common.domain.customer.vo.PayWithdrawalsVO>>
     */
    @PostMapping(value = "/customer/2027/v1/findPayWithdrawals")
    ResponseResult<PagedList<CustomerWithdrawalsVO>> findPayWithdrawals(@RequestBody CustomerWithdrawalsCondition condition);

    /**
     * @param
     * @return
     * @author lishaoping
     * @date 2019年1月9日11:43:07
     * @Description 查询用户收货地址列表
     */
    @GetMapping(value = "/address/2029/v1/selectCustomerAddressByUserId/{customerId}")
    ResponseResult<List<CustomerAddressVO>> selectCustomerAddressByUserId(@PathVariable(value = "customerId") Long customerId);

    /**
     * @param
     * @return
     * @author zhaoyanbiao
     * @date 2019年1月11日16:13:07
     * @Description 查询用户门店信息
     */
    @PostMapping(value = "/customer/2030/v1/findCustomerStoreList")
    ResponseResult<PagedList<CustomerStoreVO>> findCustomerStoreList(@RequestBody  CustomerStoreInfoCondition condition);

    /**
     * 修改门店信息
     * @param condition
     * @return
     */
    @PostMapping(value = "/customer/2031/v1/modifyCustomerStoreInfo")
    ResponseResult<Boolean> modifyCustomerStoreInfo(@RequestBody CustomerStoreInfoCondition condition);

    /**
     * 通过主键ID返回会员的相关信息
     * @param id
     * @return
     */
    @RequestMapping(value = "/customer/2032/v1/getCustomerUserById/{id}",method = RequestMethod.GET)
    ResponseResult<CustomerUserInfo> getCustomerUserById(@PathVariable(value = "id") Long id);

    /**
     * @param
     * @return
     * @author lishaoping
     * @date 2019年1月14日14:17:24
     * @Description 查询用户默认收货地址
     */
    @GetMapping(value = "/address/2033/v1/selectDefaultCustomerAddress/{customerId}")
    ResponseResult<CustomerAddressVO> selectDefaultCustomerAddress(@PathVariable(value = "customerId") Long customerId);



    /**
     * @param
     * @return
     * @author wangzekun
     * @date 2019年1月15日15:13:07
     * @Description 查询用户门店信息
     */
    @PostMapping(value = "/customer/2034/v1/findDistributorListByChannelIdAndLevel")
    ResponseResult<List<CustomerUserInfoVO>> findDistributorListByChannelIdAndLevel(@RequestBody  CustomerDistributorCondition condition);


    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 一级分销商换绑
     */
    @RequestMapping(value = "/customer/2035/v1/modifyMemberDistributorBind", method = RequestMethod.POST)
    ResponseResult<Boolean> modifyMemberDistributorBind(@RequestBody CustomerDistributorCondition condition);


    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 开店方案列表
     */
    @RequestMapping(value = "/customer/2036/v1/findCustomerShopPlanList", method = RequestMethod.POST)
    ResponseResult<PagedList<ShopPlanVO>> findCustomerShopPlanList(@RequestBody ShopPlanCondition condition);


    /**
     * @param
     * @return
     * @author 王泽坤
     * @date 2019/1/7
     * @Description 查询分销商下面的会员列表
     */
    @RequestMapping(value = "/customer/2037/v1/findDistributorMemberList", method = RequestMethod.POST)
    ResponseResult<List<CustomerUserInfoVO>> findDistributorMemberList(@RequestBody DistributorQueryCondition condition);

    /**
     * @param customerId
     * @return
     * @author zhaoyanbiao
     * @date 2019/1/12
     * @Description 通过customerId返回上级的相关信息
     */
    @PostMapping(value = "/customer/2038/v1/getParentCustomerUserByCustoemrId")
    ResponseResult<CustomerUserInfo> getParentCustomerUserByCustoemrId(@RequestParam(value = "customerId") Long customerId);
}

@Component
class CustomerServiceClientFallBack implements CustomerServiceClient, FallbackFactory<CustomerServiceClient> {
    Logger logger = LoggerFactory.getLogger(CustomerServiceClientFallBack.class);
    Throwable throwable;

    @Override
    public CustomerServiceClient create(Throwable throwable) {
        this.throwable = throwable;
        return new CustomerServiceClientFallBack();
    }



    @Override
    public ResponseResult<Boolean> saveFirstDistributer(@RequestBody CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> saveFirstDistributer{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<PagedList<CustomerDistributorChannelTypeVO>> findCustomerDistribtorChannelTypeList(DistributorChannelTypeCondition customerDistributorCondition) {
        logger.error("CustomerServiceClientFallBack -> findCustomerDistribtorChannelTypeList{}", throwable.getMessage());
        return new ResponseResult<PagedList<CustomerDistributorChannelTypeVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Boolean> modifyDistriButorType(DistributorChannelTypeCondition condition) {
        logger.error("CustomerServiceClientFallBack -> updateDistriButorType{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerOperationHomePageVO> findOperationHomePage() {
        logger.error("CustomerServiceClientFallBack -> findOperationHomePage{}", throwable.getMessage());
        return new ResponseResult<CustomerOperationHomePageVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<PagedList<CustomerDistributorVO>> findDistributerListByCondition(CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findDistributerListByCondition{}", throwable.getMessage());
        return new ResponseResult<PagedList<CustomerDistributorVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Boolean> modifyFirstDistributorBind(CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> modifyFirstDistributorBind{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Boolean> modifySecondDistributorBind(CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> modifySecondDistributorBind{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }


    @Override
    public ResponseResult<Boolean> modifyDistributorStatus(CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> modifyDistributorStatus{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Boolean> saveDistriButorChannel(DistributorChannelCondition channelCondition) {
        logger.error("CustomerServiceClientFallBack -> saveDistriButorChannel{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerDistributorSimpleVO> findDistributerSimpleById(Long id) {
        logger.error("CustomerServiceClientFallBack -> findDistributerSimpleById{}", throwable.getMessage());
        return new ResponseResult<CustomerDistributorSimpleVO>(BusinessCode.CODE_1001);
    }


    @Override
    public ResponseResult<CustomerDetailVO> findDistributerDeatilById(Long id) {
        logger.error("CustomerServiceClientFallBack -> findDistributerDeatilById{}", throwable.getMessage());
        return new ResponseResult<CustomerDetailVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerDistributorTypeAndChannelVO> getDistributerChannelLevelById(Long id) {
        logger.error("CustomerServiceClientFallBack -> getDistributerChannelLevelById{}", throwable.getMessage());
        return new ResponseResult<CustomerDistributorTypeAndChannelVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerAddressVO> selectCustomerAddressById(Long id) {
        logger.error("CustomerServiceClientFallBack -> selectCustomerAddressById{}", throwable.getMessage());
        return new ResponseResult<CustomerAddressVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerUserInfoVO> getCustomerUserInfoById(@RequestParam(value = "customerId") Long customerId) {
        logger.error("CustomerServiceClientFallBack -> getCustomerUserInfoById{}", throwable.getMessage());
        return new ResponseResult<CustomerUserInfoVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerDistributorTypeAndChannelVO> getCustomerChannelById(@RequestParam(value = "customerId") Long customerId) {
        logger.error("CustomerServiceClientFallBack -> getCustomerChannelById{}", throwable.getMessage());
        return new ResponseResult<CustomerDistributorTypeAndChannelVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<List<CustomerDistributorChannelTypeVO>> findDistributerChannelTypeList(DistributorChannelTypeCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findDistributerChannelTypeList{}", throwable.getMessage());
        return new ResponseResult<List<CustomerDistributorChannelTypeVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<List<CustomerUserInfoVO>> getCustomerUserInfoByIds(@RequestBody CustomerInfoCondition condition) {
        logger.error("CustomerServiceClientFallBack -> getCustomerUserInfoByIds{}", throwable.getMessage());
        return new ResponseResult<List<CustomerUserInfoVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerTotalVO> getCustomerTotalById(@RequestBody CustomerTotalCondition condition) {
        logger.error("CustomerServiceClientFallBack -> getCustomerTotalById{}", throwable.getMessage());
        return new ResponseResult<CustomerTotalVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerRevenueVO> getCustomerRevenue(CustomerMyRevenueCondition condition) {
        logger.error("CustomerServiceClientFallBack -> getCustomerRevenue{}", throwable.getMessage());
        return new ResponseResult<CustomerRevenueVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Integer> auditPayWithdrawals(CustomerAuditCondition condition) {
        logger.error("CustomerServiceClientFallBack -> auditPayWithdrawals{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<List<CustomerBaseCollectVO>> findCustomerWallet(CustomerWalletCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findCustomerWallet{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<PagedList<CustomerRevenueDetailVO>> findUserRevenueDetail(CustomerRevenueDetailCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findUserRevenueDetail{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<PagedList<CustomerIntegralDetailVO>> findUserIntegralDetail(CustomerIntegralDetailCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findUserIntegralDetail{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<List<CustomerAddressVO>> selectCustomerAddressByUserId(Long customerId) {
        logger.error("CustomerServiceClientFallBack -> selectCustomerAddressByUserId{}", throwable.getMessage());
        return new ResponseResult<List<CustomerAddressVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<PagedList<CustomerWithdrawalsVO>> findPayWithdrawals(CustomerWithdrawalsCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findPayWithdrawals{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<PagedList<CustomerStoreVO>> findCustomerStoreList(CustomerStoreInfoCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findCustomerStoreList{}", throwable.getMessage());
        return new ResponseResult<PagedList<CustomerStoreVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Integer> getWithdrawDepositNum() {
        logger.error("CustomerServiceClientFallBack -> getWithdrawDepositNum{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Boolean> modifyCustomerStoreInfo(CustomerStoreInfoCondition condition) {
        logger.error("CustomerServiceClientFallBack -> modifyCustomerStoreInfo{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerUserInfo> getCustomerUserById(Long id) {
        logger.error("CustomerServiceClientFallBack -> getCustomerUserById{}", throwable.getMessage());
        return new ResponseResult<CustomerUserInfo>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<Boolean> modifyDistributor(@RequestBody CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> modifyDistributor{}", throwable.getMessage());
        return new ResponseResult<>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerAddressVO> selectDefaultCustomerAddress(Long customerId) {
        logger.error("CustomerServiceClientFallBack -> selectDefaultCustomerAddress{}", throwable.getMessage());
        return new ResponseResult<CustomerAddressVO>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<List<CustomerUserInfoVO>> findDistributorListByChannelIdAndLevel(CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findDistributorListByChannelIdAndLevel{}", throwable.getMessage());
        return new ResponseResult<List<CustomerUserInfoVO>>(BusinessCode.CODE_1001);
    }


    @Override
    public ResponseResult<Boolean> modifyMemberDistributorBind(CustomerDistributorCondition condition) {
        logger.error("CustomerServiceClientFallBack -> modifyMemberDistributorBind{}", throwable.getMessage());
        return new ResponseResult<Boolean>(BusinessCode.CODE_1001);
    }


    @Override
    public ResponseResult<PagedList<ShopPlanVO>> findCustomerShopPlanList(ShopPlanCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findCustomerShopPlanList{}", throwable.getMessage());
        return new ResponseResult<PagedList<ShopPlanVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<List<CustomerUserInfoVO>> findDistributorMemberList(DistributorQueryCondition condition) {
        logger.error("CustomerServiceClientFallBack -> findDistributorMemberList{}", throwable.getMessage());
        return new ResponseResult<List<CustomerUserInfoVO>>(BusinessCode.CODE_1001);
    }

    @Override
    public ResponseResult<CustomerUserInfo> getParentCustomerUserByCustoemrId(Long customerId) {
        logger.error("CustomerServiceClientFallBack -> getParentCustomerUserByCustoemrId{}", throwable.getMessage());
        return new ResponseResult<CustomerUserInfo>(BusinessCode.CODE_1001);
    }
}
